package com.zzyl.nursing.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.zzyl.serve.DTO.CheckInDTO;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

@Data
public class CheckInGetDetailsVo implements Serializable {
    private CheckInElderVO checkInElderVo;
    private List<ElderFamilyVO> elderFamilyVoList;
    private CheckInConfigVO checkInConfigVo;
    private ContractVO contractVo;

    @Data
    public static class CheckInElderVO implements Serializable {
        private String name;
        private String idCardNo;
        private String birthday;
        private Integer age;
        private Integer sex;
        private String phone;
        private String address;
        private String image;
        private String idCardPortraitImg;
        private String idCardNationalEmblemImg;

    }

    @Data
    public static class ElderFamilyVO implements Serializable {
        private String name;
        private String phone;
        private String kinship;
    }

    @Data
    public static class CheckInConfigVO implements Serializable {
        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
        @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
        private LocalDateTime startDate;
        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
        @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
        private LocalDateTime endDate;
        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
        @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
        private LocalDateTime feeStartDate;
        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
        @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
        private LocalDateTime feeEndDate;
        private Long nursingLevelId;
        private BigDecimal bedFee;
        private String[] bed;
        private BigDecimal governmentSubsidy;
        private BigDecimal insurancePayment;
        private BigDecimal otherFees;
        private BigDecimal deposit;

    }

    @Data
    public static class ContractVO implements Serializable {
        private String contractName;
        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
        @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
        private LocalDateTime signDate;
        private String thirdPartyName;
        private String thirdPartyPhone;
        private String agreementPath;
    }
}
